home *** CD-ROM | disk | FTP | other *** search
/ SGI Freeware 1999 August / SGI Freeware 1999 August.iso / dist / fw_qt.idb / usr / freeware / include / Qt / qmetaobject.h.z / qmetaobject.h
Encoding:
C/C++ Source or Header  |  1998-10-28  |  2.5 KB  |  81 lines

  1. /****************************************************************************
  2. ** $Id: qmetaobject.h,v 2.5 1998/07/03 00:09:35 hanord Exp $
  3. **
  4. ** Definition of QMetaObject class
  5. **
  6. ** Created : 930419
  7. **
  8. ** Copyright (C) 1992-1998 Troll Tech AS.  All rights reserved.
  9. **
  10. ** This file is part of Qt Free Edition, version 1.40.
  11. **
  12. ** See the file LICENSE included in the distribution for the usage
  13. ** and distribution terms, or http://www.troll.no/free-license.html.
  14. **
  15. ** IMPORTANT NOTE: You may NOT copy this file or any part of it into
  16. ** your own programs or libraries.
  17. **
  18. ** Please see http://www.troll.no/pricing.html for information about 
  19. ** Qt Professional Edition, which is this same library but with a
  20. ** license which allows creation of commercial/proprietary software.
  21. **
  22. *****************************************************************************/
  23.  
  24. #ifndef QMETAOBJECT_H
  25. #define QMETAOBJECT_H
  26.  
  27. #ifndef QT_H
  28. #include "qconnection.h"
  29. #endif // QT_H
  30.  
  31.  
  32. struct QMetaData                // member function meta data
  33. {                        //   for signal and slots
  34.     char   *name;                // - member name
  35.     QMember ptr;                // - member pointer
  36. };
  37.  
  38.  
  39. class QMetaObject                // meta object class
  40. {
  41. public:
  42.     QMetaObject( const char *class_name, const char *superclass_name,
  43.          QMetaData *slot_data,    int n_slots,
  44.          QMetaData *signal_data, int n_signals );
  45.    ~QMetaObject();
  46.  
  47.     const char    *className()        const { return classname; }
  48.     const char    *superClassName()    const { return superclassname; }
  49.  
  50.     QMetaObject *superClass()        const { return superclass; }
  51.  
  52.     int         nSlots( bool=FALSE )    const;
  53.     int         nSignals( bool=FALSE ) const;
  54.  
  55.     QMetaData    *slot( const char *, bool=FALSE )   const;
  56.     QMetaData    *signal( const char *, bool=FALSE ) const;
  57.  
  58.     QMetaData    *slot( int index, bool=FALSE )        const;
  59.     QMetaData    *signal( int index, bool=FALSE )    const;
  60.  
  61. private:
  62.     QMemberDict *init( QMetaData *, int );
  63.     QMetaData    *mdata( int code, const char *, bool ) const;
  64.     QMetaData    *mdata( int code, int, bool ) const;
  65.  
  66.     char    *classname;            // class name
  67.     char    *superclassname;        // super class name
  68.     QMetaObject *superclass;            // super class meta object
  69.     QMetaData    *slotData;            // slot meta data
  70.     QMemberDict *slotDict;            // slot dictionary
  71.     QMetaData    *signalData;            // signal meta data
  72.     QMemberDict *signalDict;            // signal dictionary
  73.  
  74. private:    // Disabled copy constructor and operator=
  75.     QMetaObject( const QMetaObject & );
  76.     QMetaObject &operator=( const QMetaObject & );
  77. };
  78.  
  79.  
  80. #endif // QMETAOBJECT_H
  81.